/**
 * LICENCIA LGPL:
 * 
 * Esta librería es Software Libre; Usted puede redistribuirla y/o modificarla
 * bajo los términos de la GNU Lesser General Public License (LGPL) tal y como 
 * ha sido publicada por la Free Software Foundation; o bien la versión 2.1 de 
 * la Licencia, o (a su elección) cualquier versión posterior.
 * 
 * Esta librería se distribuye con la esperanza de que sea útil, pero SIN 
 * NINGUNA GARANTÍA; tampoco las implícitas garantías de MERCANTILIDAD o 
 * ADECUACIÓN A UN PROPÓSITO PARTICULAR. Consulte la GNU Lesser General Public 
 * License (LGPL) para más detalles
 * 
 * Usted debe recibir una copia de la GNU Lesser General Public License (LGPL) 
 * junto con esta librería; si no es así, escriba a la Free Software Foundation 
 * Inc. 51 Franklin Street, 5º Piso, Boston, MA 02110-1301, USA o consulte
 * <http://www.gnu.org/licenses/>.
 *
 * Copyright 2011 Agencia de Tecnología y Certificación Electrónica
 */
package es.accv.arangi.base.device;

import java.io.InputStream;
import java.security.KeyPair;
import java.security.cert.X509Certificate;

import es.accv.arangi.base.exception.device.AliasNotFoundException;
import es.accv.arangi.base.exception.device.AliasNotFreeException;
import es.accv.arangi.base.exception.device.CertificateInvalidException;
import es.accv.arangi.base.exception.device.DeletingObjectException;
import es.accv.arangi.base.exception.device.DeviceNotFoundException;
import es.accv.arangi.base.exception.device.DeviceNotInitializedException;
import es.accv.arangi.base.exception.device.IncorrectPINException;
import es.accv.arangi.base.exception.device.KeyPairException;
import es.accv.arangi.base.exception.device.LoadingObjectException;
import es.accv.arangi.base.exception.device.OpeningDeviceException;
import es.accv.arangi.base.exception.device.ReadingStreamException;
import es.accv.arangi.base.exception.device.SavingObjectException;

/**
 * Clase base para los manager de keystores de navegador
 * 
 * @author <a href="mailto:jgutierrez@accv.es">José M Gutiérrez</a>
 */
public abstract class AbstractBrowserKeyStoreManager extends AbstractKeyStoreManager {

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public void importAliasFromKeystore(InputStream is, String password, String labelOrigen, String labelDestino) 
		throws DeviceNotFoundException, ReadingStreamException, AliasNotFoundException, LoadingObjectException, SavingObjectException, OpeningDeviceException, IncorrectPINException {
		
	}

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public void changeAlias(String oldAlias, String newAlias)
			throws AliasNotFoundException,
			AliasNotFreeException, SavingObjectException,
			DeletingObjectException {
	}

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public void changePin(String newpin) throws SavingObjectException {
	}

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public void clear() throws DeletingObjectException {
	}

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public int deleteObjects(String label) throws DeletingObjectException {
		return 0;
	}

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public int deletePrivateKey(String label) throws DeletingObjectException {
		return 0;
	}

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public KeyPair generateKeyPair(String alias) throws AliasNotFreeException,
			DeviceNotInitializedException, KeyPairException {
		return null;
	}

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public KeyPair generateKeyPair(String alias, int keySize)
			throws AliasNotFreeException, DeviceNotInitializedException,
			KeyPairException {
		return null;
	}

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public byte[] generatePKCS10(String subjectDN, String subjectAlternativeDN,
			KeyPair rsaKeyPair) {
		return null;
	}

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public void importAliasFromKeystore(DeviceManager deviceManager,
			String labelOrigen, String labelDestino)
			throws DeviceNotFoundException,
			AliasNotFoundException, LoadingObjectException,
			SavingObjectException {
	}

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public void importCertificate(X509Certificate cert, String label)
			throws CertificateInvalidException,	SavingObjectException {
	}

	/**
	 * No utilizar: método no implementado en este tipo de dispositivos
	 */
	public void importFromKeystore(DeviceManager deviceManager)
			throws DeviceNotFoundException,
			LoadingObjectException, SavingObjectException {
	}


}